package com.my12306.train.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.my12306.common.model.vo.PageVo;
import com.my12306.common.util.PageUtils;
import com.my12306.common.util.response.ResponseData;
import com.my12306.train.model.entity.RouteEntity;
import com.my12306.train.model.entity.StationEntity;

import java.util.List;

/**
 * 车站路线
 *
 * @author wj¦
 * @email
 * @date 2020-07-24 20:58:07
 */
public interface RouteService extends IService<RouteEntity> {

    /**
     * 分页查询里程
     *
     * @param pageVo
     * @return
     */
    PageUtils queryRouteByPage(PageVo pageVo);

    /**
     * 查询分页数据总量
     *
     * @param pageVo
     * @param logicDelete
     * @return
     */
    Integer queryRouteCounteByPage(PageVo pageVo, int logicDelete);

    /**
     * 添加一条线路
     * 1.添加线路本身
     * 2.添加线路经过的站点即里程
     *
     * @param route
     * @return
     */
    Long saveRoute(RouteEntity route);

    /**
     * 修改线路
     *
     * @param route
     */
    void updateRouteById(RouteEntity route);

    /**
     * 批量删除线路
     * 1.逻辑删除线路本身
     * 2.删除线路与车次的管理
     * 3.删除线路与里程的管理
     *
     * @param roleIds
     * @return
     */
    ResponseData deleteRouteBatchByIds(List<Long> roleIds);

    /**
     * 查询所有线路
     * @param logicDelete
     * @return
     */
    List<RouteEntity> queryAllRoute(int logicDelete);

    /**
     * 查询所有车站信息
     * @return
     */
    List<StationEntity> getAddParamters();

    /**
     * 根据routeId查询
     * @param routeId
     * @return
     */
    RouteEntity queryRouteByRouteId(Long routeId);
}

